package com.ceair.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ceair.entity.SysDictType;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ceair.entity.request.dictionary.DictTypeInOrUpReq;
import com.ceair.entity.request.dictionary.QueryDictTypeReq;
import com.ceair.entity.vo.dictionary.SysDictTypeVO;

/**
 * <p>
 * 字典类型表 服务类
 * </p>
 *
 * @author wangbaohai
 * @since 2025-03-27
 */
public interface ISysDictTypeService extends IService<SysDictType> {

    /**
     * 分页查询字典类型信息。
     *
     * @param queryDictTypeReq 查询条件请求对象，包含分页信息和过滤条件。
     *                         例如：分页参数（页码、每页大小）、字典类型名称、状态等。
     * @return 返回一个分页结果对象，包含符合条件的字典类型数据。
     *         结果对象中包括当前页的数据列表、总记录数、总页数等分页相关信息。
     */
    Page<SysDictType> queryDictTypeWithPage(QueryDictTypeReq queryDictTypeReq);

    /**
     * 保存字典类型信息。
     *
     * @param dictTypeInOrUpReq 包含字典类型输入或更新请求的数据传输对象（DTO）。
     *                          该参数包含了需要保存的字典类型的相关信息，例如类型名称、编码等。
     *                          参数不能为空，且应符合业务逻辑的校验规则。
     *
     * @return 返回保存后的字典类型视图对象（SysDictTypeVO）。
     *         该对象包含了保存成功后的字典类型的详细信息，例如唯一标识符、类型名称等。
     *         如果保存失败，则可能返回 null 或抛出异常，具体行为取决于实现逻辑。
     */
    SysDictTypeVO save(DictTypeInOrUpReq dictTypeInOrUpReq);

}
